iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
Modern Web

30天入門Java Script系列 第 2

Day2:JavaScript的變數宣告

  • 分享至 

  • xImage
  •  

什麼是變數?

在我們接受、儲存資料之前,我們需要一個儲存資料的容器。可以想像成我們的資料需要一個檔案夾,貼上標籤來讓大家知道這些是什麼東西。
變數就是那個用來儲存資料、貼上標籤的檔案夾,我們稱它為變數(variable)。

JavaScript的變數

JavaScript有三種變數:var、let與const。
var是早期JavaScript使用的變數,因為作用域較大的關係會出現一些神奇的情況,所以目前基本上都用let來宣告變數。

var

  • 舊寫法,作用域是函式層級(function scope)。
  • 可重新賦值。
  • 可以被重複宣告。

let

  • 新寫法,大部分都用這個,作用域是區塊層級(block scope)。
  • 可重新賦值。
  • 不可以被重複宣告。

const

  • 宣告常數(constant),一旦指定值後不能再改變。
  • 作用域是區塊層級。

宣告範例:

// let
let age = 20;
age = 21;
console.log(age); //輸出21

//const
const PI = 3.14159;
// PI = 3; // 會報錯

// var
var city = 'Taipei';
city = 'Kaohsiung';
console.log(city); // Kaohsiung

至於var和let的作用域不同到底會造成甚麼樣的差別呢?
我們可以用這一小段程式碼看看

if (true) {
  var a = 1;
  let b = 1;
}
console.log(a); // 1
console.log(b); // ReferenceError

你會看到用var宣告的a在if外是存在值的,但用let宣告的b則不會出現,這會有幾個壞處:

  • **變數洩漏:**你以為只是暫時用一下,結果變數在外面也存在,可能會導致值被意外改掉,debug會超級痛苦。
  • **for迴圈陷阱:**var在迴圈裡不會產生新的變數,每次迴圈其實共用同一個變數,常常導致輸出的值不如預期。

所以基本上現在宣告變數使用的都是let而不是var,至於const因為宣告過後就不會再改變值,所以通常都會放不會變的值或參考。
那麼今天就到這裡,我們明天見啦。


上一篇
Day1:什麼是Java Script?如何使用?
下一篇
Day3:JavaScript基本資料型態與型態轉換
系列文
30天入門Java Script21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言